package com.gcxx.goods.io.dao;

import java.util.List;
import java.util.Map;

import com.gcxx.framework.base.entity.PageBean;

import  com.gcxx.goods.io.entity.GoodsIoInm;

/**
 * <strong>Title : IGoodsIoInmDAO<br></strong>
 * <strong>Description : </strong>IGoodsIoInmDAO接口类<br> 
 * <strong>Create on : 2015-07-13<br></strong>
 * <p>
 * <strong>Copyright (C) 天津共创鑫星科技有限公司_智能链管理系统<br></strong>
 * <p>
 * @author guoyi<br>
 * @version <strong>1.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人		修改日期		修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface IGoodsIoInmDAO {
	
	/**
	 * 保存对象数据
	 * 
	 * @param goodsIoInm
	 *            - 对象
	 */
	public void save(GoodsIoInm goodsIoInm);

	/**
	 * 根据ID集合删除数据
	 * 
	 * @param idList
	 *            - 主键集合
	 */
	public void delete(List<String> idList);

	/**
	 * 根据主键查询
	 * 
	 * @param id
	 *            - 主键
	 * @return 对象
	 */
	public GoodsIoInm findById(String id);

	/**
	 * 根据对象部分的属性查询
	 * 
	 * @param goodsIoInm
	 *            - 对象
	 * @return 对象集合
	 */
	public List<GoodsIoInm> findByExample(GoodsIoInm goodsIoInm);

	/**
	 * 根据对象的一个属性查询
	 * 
	 * @param propertyName
	 *            - 属性名称
	 * @param value
	 *            - 属性值
	 * @return 对象集合
	 */
	public List<GoodsIoInm> findByProperty(String propertyName, Object value);

	/**
	 * 查询所有数据
	 * 
	 * @return 对象集合
	 */
	public List<GoodsIoInm> findAll();

	/**
	 * 根据ID进行实体更新
	 * 
	 * @param map
	 *            - 对象
	 * @return 对象
	 */
	public void update(Map<String, String> map);

	/**
	 * 将传入的对象持久化并保存。 如果对象未保存（Transient状态），调用save方法保存。
	 * 如果对象已保存（Detached状态），调用update方法将对象与Session重新关联。
	 * 
	 * @param goodsIoInm
	 *            - 对象
	 */
	public void attachDirty(GoodsIoInm goodsIoInm);

	/**
	 * 将传入的对象状态设置为Transient状态
	 * 
	 * @param goodsIoInm
	 *            - 对象
	 */
	public void attachClean(GoodsIoInm goodsIoInm);
	
	/**
	 * 根据条件分页查询实体信息集合
	 * @param page - 分页信息
	 * @return 分页信息
	 */
	public PageBean findByCondition(PageBean page);
}
